/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import java.sql.SQLException;
import java.util.Vector;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.JOptionPane;
import model.Fornecedor;
import util.Conexao;

/**
 *
 * @author Klecio
 */
public class FornecedorDAO extends GenericDao<Fornecedor> {
    
    Conexao c = new Conexao();
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("Controle_de_EstoquePU");
    EntityManager manager = factory.createEntityManager();
    
    public void salvar (Fornecedor fornecedor){
        gravar(fornecedor);
    }

    public void alterar (Fornecedor fornecedor){
        alterar(fornecedor);
    }
    
    public void excluir (Fornecedor fornecedor){
        Fornecedor f = listar(fornecedor);
        remover(f);        
    }
    
    public Fornecedor listar (Fornecedor fornecedor){
        return getEntityManager().find(Fornecedor.class, fornecedor.getIdFornecedor());
    }
    
    public int PegaUltimoRegistro() {
        Query query = manager.createQuery("SELECT max(e.id) FROM Endereco e");
        Integer codigo = (Integer)query.getSingleResult();
        if(codigo == null){
            return 1;
        }else{
            return codigo + 1;
        }
    }
    
    public Vector<Fornecedor> listaTodos() {
      c.conecta();
      Vector<Fornecedor> resultados = new Vector<Fornecedor>();
      try {
         c.executeSQL("SELECT * FROM fornecedor ORDER BY razao");
         while (c.resultset.next()) {
            Fornecedor temp = new Fornecedor();
            temp.setRazao(c.resultset.getString("RAZAO"));
            resultados.add(temp);
         }
         return resultados;
      } catch (SQLException e) {
         System.out.println(e);
         return null;
      }
   }
    
    public Fornecedor buscarPorFornecedor(String nome){
        Query query = manager.createQuery("SELECT f FROM Fornecedor f WHERE f.razao = '"+nome+"'");
        Fornecedor f = (Fornecedor) query.getSingleResult();
        if(f == null){
            JOptionPane.showMessageDialog(null, "Fornecedor não encontrado");
            return null;
        }
        else{
            return f;
        }
    }
}
